package com.finanzaspersonales;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import clases.categoria_gastos;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Spinner;

public class Ver_Presupuesto extends Activity {
	
	ArrayList<categoria_gastos> categorias = new ArrayList<categoria_gastos>();
	private ProgressBar pb;
	private int idCategoria;
	private Button btn_agregar;
	private Button btn_eliminar;
	private int posicion;
	private String idUsuario;
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		idUsuario= this.getIntent().getExtras().getString("idUsuario");
		super.onCreate(savedInstanceState);
		setContentView(R.layout.ver_presupuesto);
		pb= (ProgressBar)findViewById(R.id.progress1);
		
		Spinner s = (Spinner)findViewById(R.id.spinner1);
		
		categorias=llenaCategorias();
		
		final ArrayList<String> nomCategorias = new ArrayList<String>();
		
		for(int i=0; i<categorias.size() ;i++){
			nomCategorias.add(categorias.get(i).getNombre());
		}
		
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,
				nomCategorias);		
		adapter.setDropDownViewResource(
	            android.R.layout.simple_spinner_dropdown_item);
	        s.setAdapter(adapter);
	        s.setOnItemSelectedListener(
	            new AdapterView.OnItemSelectedListener() {
	                public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {	                	
	                	String nombreCat= nomCategorias.get(position);
	                	posicion = buscaCat(nombreCat);
	                	pb.setMax((int)categorias.get(posicion).getMontoLimite());
	                	pb.setProgress((int)categorias.get(posicion).getMontoActual());
	                	
	                }
	                public void onNothingSelected(AdapterView<?> parent) {
	                }
	            }
	        );
		/*
		StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
		*/
	        
	    btn_agregar = (Button) findViewById(R.id.btnAgregar);
	    btn_agregar.setOnClickListener(new View.OnClickListener() {
			            public void onClick(View v) {
			            	EditText et = (EditText)findViewById(R.id.EditTAgr);
			                agregaMonto(et.getText().toString(), categorias.get(posicion).getId());
			            }		            
			            
			        });
	    btn_eliminar = (Button) findViewById(R.id.btnEliminar);
	    btn_eliminar.setOnClickListener(new View.OnClickListener() {
			            public void onClick(View v) {
			            	eliminarCat(categorias.get(posicion).getId());
			            }		            
			            
			        });
	}
	
	protected void eliminarCat(int idcat) {
		new json_Actualizar().execute("http://10.0.2.2:3000/categoria_gastos/borrarCategoria/"+idcat+".json");
		
	}
		

	protected void agregaMonto(String monto, int idcat) {
		new json_Actualizar().execute("http://10.0.2.2:3000/categoria_gastos/actualizarMonto/"+idcat+"/"+monto+".json");
		int progAvtu = pb.getProgress();
		pb.setProgress(progAvtu+Integer.parseInt(monto));	
		}

	protected int buscaCat(String nombreCat) {
		int pos = 0;
		for (int i=0; i<categorias.size(); i++){
			if (categorias.get(i).getNombre().equals(nombreCat)){
				pos=i;
				break;
			}
		}
		return pos;
	}

	private ArrayList<categoria_gastos> llenaCategorias() {
		ArrayList<categoria_gastos> cat = new ArrayList<categoria_gastos>();
		JSONArray  jArray = null;
		try {
			jArray = (new JSONParser_Final().execute("http://10.0.2.2:3000/categoria_gastos/verCategoria/"+idUsuario+".json")).get();
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
		
		try {
			for(int i = 0; i < jArray.length(); i++){
				 JSONObject jsonItem = jArray.getJSONObject(i);
		         JSONObject jsonItem1 = jsonItem.getJSONObject("categoria_gasto");
		         
		         int id = jsonItem1.getInt("id");
		         double montoActual = jsonItem1.getDouble("montoActual");
		         double montoLimite = jsonItem1.getDouble("montoLimite");
		         String nombre = jsonItem1.getString("nombre");
		         
		         categoria_gastos cg = new categoria_gastos(id, montoActual, montoLimite, nombre);
		         cat.add(cg);
		        
			}
		}catch (JSONException e) {
		     e.printStackTrace();
		 }
		return cat;
	}
}
